//堆内存 复杂数据类型 内存空间 堆内存 把地址给你 动态性
// 内存需求 弹性
const users = [
  { id: 1, name: '张三' ,hometown:'北京'},
  { id: 2, name: '李四' ,hometown:'上海'},
  { id: 3, name: '王五' ,hometown:'广州'}
];

// 动态性 可以在运行时，根据需要，动态地分配内存空间
//users.push({ id: 4, name: '赵六' ,hometown:'深圳'});

//栈内存中  简单高效 变量的读写操作不会影响空间大小
//连续存储的简单变量，方便管理，快速访问
// 程序，申请一个连续空间
let a = 1;
let b = 2;
let c = 3;

let d = a; //值拷贝， 复印a的值给d
const  data = users; //引用式拷贝  引用拷贝， 把地址给你

data.hobbies = ['篮球','足球','跑步'];
console.log(data, users);
 // 二者都有 hobbies 属性，因为引用拷贝， 把地址给你， 所以二者都指向同一个内存空间， 所以修改其中一个， 另一个也会改变
 // 栈就像一个目录，记录着堆中各个数据的位置和名称，让程序能够找到并使用堆中存储的实际数据。